Bundles
An Orchestra bundle is a deployable artifact that consists of several scenarios which are treated together as one logical unit.
flowchart LR
%% Define nodes
bundle["Bundle file(.psb)"]
subgraph designer["Web designer"]
subgraph project["Project-A"]
direction LR
dScenarioA["scenario-a"]
dScenariocB["scenario-b"]
dScenariocC["scenario-c"]
end
end
subgraph runtime["Runtime"]
subgraph deployScenarios["Deployed scenarios"]
rScenarioA["scenario-a"]
rScenarioB["scenario-b"]
rScenarioC["scenario-c"]
end
end
subgraph solutionHub["Solution hub"]
subgraph bundleTemplate["Bundle template"]
direction LR
btScenarioA["scenario-a"]
btScenarioB["scenario-b"]
btScenarioC["scenario-c"]
end
end
%% Define links
project -- export --> bundle
bundle -- deploy --> runtime
bundle -- create template --> solutionHub
%% Apply css
class designer,project,runtime,deployScenarios,solutionHub,bundleTemplate mermaid-subgraph-container
The bundle can be exported from the web designer as a PSB file, which can be deployed on the Orchestra runtime or used to create a template in the Solution Hub.
Bundle generation
As described above, a bundle file is a container that holds all scenarios of an orchestra project Furthermore, one can add additional scenarios by declaring external scenario dependencies with in the parent pom file. Whenever a bundle is generated, orchestra executes the following steps
- Takeover all child scenarios found in the project
- Analyze the parent pom file. Takeover all external scenario dependencies and add them to the generated psb.
An example for an external dependencies is a scenario with global environment entries. Such a scenario is defined one time and added to the bundle as external dependency. All child scenarios can share the environment entries and use the same settings. The library scenario itself holds the global variables which are imported into the scenarios of the project.
All library scenarios contained in a bundle have a well-defined visibility.
- The environment entries imported as an external dependency (from the parent pom) are global within the bundle, but local between different bundles.
- Different bundles can use the same global library but can have different settings.